﻿using System;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.Services;
using App_Code.Clases;
using App_Code.Utilidades;
using SubSonic.Repository;

public partial class Mantenimiento_Usuarios_CrearUsuario : System.Web.UI.Page
{
    static readonly SimpleRepository repository = new SimpleRepository("Electro", SimpleRepositoryOptions.None);
    protected void Page_Load(object sender, EventArgs e)
    {
        Validaciones.ValidarSession();
        if (!Page.IsPostBack)
        {
            var roles = from r in repository.All<Rol>()
                        select new {r.Id, r.Nombre};
            selectRol.DataSource = roles;
            selectRol.DataTextField = "Nombre";
            selectRol.DataValueField = "Id";
            selectRol.DataBind();
        }
    }

    protected void Guardar(object sender, EventArgs e)
    {
        try
        {

            var usuario = new Usuario()
                              {
                                  NombreUsuario = txtNombre.Value,
                                  EstaActivo = true,
                                  FechaUltimoIngreso = DateTime.Now,
                                  IdRol = int.Parse(selectRol.SelectedValue),
                                  Salt = ""
                              };
            var claveEncriptada = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword1.Value, "MD5");
            usuario.Password = claveEncriptada;
            repository.Add(usuario);
            Response.Redirect("/e-lectrodomesticos/Mantenimiento/Usuarios/VerUsuarios.aspx");
        }
        catch(Exception ex)
        {
            
        }
    }
    [WebMethod]
    public static object VerificarUsuario(string nombreUsuario, int idUsuario)
    {
        var usuario = repository.Exists<Usuario>(x => x.NombreUsuario == nombreUsuario && x.Id != idUsuario);
        return usuario
                   ? new {mensaje = "El usuario "+nombreUsuario+" ya esta en uso", estaEnUso = true}
                   : new {mensaje = "", estaEnUso = false};
    }
}
